In network routers, there could be a large number of physical or logical network interfaces. Assigning a unique Internet Protocol (IP) address to each interface is cumbersome and consumes a large number of network addresses. To alleviate these issues, only a small group of the interfaces (called donors) may be assigned a unique network address and all other interfaces (called borrowers) may borrow address(es) from the group of interfaces.
Network applications/programs need to be aware of each interface address and be sensitive to changes in an interface address. To get notified of changes of an interface address, applications/programs may register, with a kernel, for interface address change event notification. There could be a large number of borrowers for each donor. As a result, any change in an address of the donor has to be notified to the applications/programs for each borrower, which results in the kernel generating a large number of event notification messages. This leads to reduced system performance and responsiveness, as each program will have to spend a significant amount of resources to process these events.